var sortableSelector = "ol.nested_with_switch";

$(document).ready(function(event){
	var sysCode = $("input[name='sysCode']").val();
	var opts = new Object();
	opts["selector"] = sortableSelector;
	opts["sortableClass"] = "nested_with_switch vertical";
	opts["resultTargetObj"] = "#frmGrpFnMgr";
	opts["viewUrl"] = "/template/system/group/_fnMgrFormView";
	opts["viewDataType"] = "html";
	opts["viewType"] = "POST";
	opts["viewData"] = "sysCode=" + sysCode;
	opts["viewTargetObj"] = ".fnInfo .grpFnMgrFormView";
	
	var sortable = new jqSortable();
	sortable.init(opts);
	
	var jHelper = new jsonHelper2();
	var data = jHelper.stringToJsonObj($("#grpFnMgrInfo").html());
	sortable.genData(data);
	sortable.getSortable();
	
	$("#jqwFormSaveBtn").on("click", function(){
		if(sortable.isEmpty()){
			alert("저장할 기능이 존재하지 않습니다.");
		}else{
			jqwController();
		}
	});

	$("#jqwCloseBtn").on("click", function(){
		var jqw = new jqWindow();
		jqw.destroyJqwSelected();
	});
	
	$("#jqwSelectedReleaseBtn").on("click", function(){
		$(sortableSelector).find("li.selectedLi").each(function(idx, item){
			$(item).removeClass("selectedLi");
		});
		
		$(".grpFnMgrFormView").html("");
	});
	
	//$(":input[name='fnAddBtn']").on("click", fnAddBtn);
	$(":input[name='fnAddBtn']").each(function(idx, item){
		$(item).on("click", fnAddBtn);
	});
	
	$("input[name='soptRadio']").on("change", function(evnt){
		sortable.setOption();
		fnAddBtnsIsActive();
	});
});

function jqwController(){
	var obj = $(".pageNavi").find(".numberingOn");
	naviNumClickEventReg(obj);

	var grpId = $("#grpFnMgrId").text();
	var options = new Object();
	options["url"] = "/template/system/group/_fnMgrFormSave/"+grpId;
	options["type"] = "POST";
	options["dataType"] = "json";
	options["data"] = "frm:frmGrpFnMgr";
	options["triggerObj"] = obj;	//트리 메뉴에서 현재 화면을 triggering(to click) 할 수 있는 오브젝트.
	options["jqwType"] = "save";
	options["jqwClose"] = true;
	
	var jqw = new jqWindow();
	jqw.jqwSet(options);
	jqw.loadJqWindow();
}

function fnAddBtn(){
	var selectLi = $(sortableSelector).find("li.selectedLi");
	var selectLiHideYN = $(selectLi).find(">div").eq(5);
	var thisRow = $(this).parent("td").parent("tr");
	var chkHighestLevel = $(thisRow).find("> td").eq(1).find(">div").eq(4);
	
	if($(selectLi).length > 0 && $(chkHighestLevel).text() == "Y"){
		alert("그룹 구성의 최 상위 레벨에 사용할 수 있는 기능입니다.\n하위 레벨로 사용할 수 없습니다.\n\n[선택해제]후, 기능 추가를 해주세요.");
		return;
	}

	if($(selectLi).length > 0 && $(selectLiHideYN).text() == "Y"){
		alert("Private Group로 설정되었습니다.\n하위 기능을 추가할 수 업습니다.");
		return;
	}
	
	var jsonStr = $(this).next("span").text();
	var jh = new jsonHelper2();
	var jsonObj = jh.stringToJsonObj(jsonStr);
	var sortable = new jqSortable();
	var child = sortable.setData(jsonObj, 0);	
	
	if (!$("#sort").is(':checked')) {
		alert('설정옵션이 [정렬]일때만 추가 가능합니다.');
		return;
	}
	
	$(sortableSelector).find("li.nothing").each(function(){
		$(this).remove();
	});

	var setOpts = $("input[name='soptRadio']:checked");
	if($(setOpts).val() == "1"){
		var chmodObj = $(child).find(">input").eq(8);
		$(chmodObj).attr("type", "text");
	}
	
	if($(selectLi).length <= 0){ $(child).appendTo($(sortableSelector));
	}else{ $(selectLi).find(">ol").append($(child));
	}
	
	sortable.reBuild($(sortableSelector));
	
	$(thisRow).remove();
	
	if($("#notMappingFnList > TBODY").find("> TR").length <= 0){
		$("#notMappingFnList > TBODY").append("<tr id='emptyTrMsg'><td width='460' style='text-align:center;'>추가할 기능이 없습니다.</td></tr>");
	}
}

function fnAddBtnsIsActive(){
	var setOpts = $("input[name='soptRadio']:checked");
	var fnRemoveBtn = $("#fnRemoveBtn");
	
	if($(fnRemoveBtn).length > 0){
		if($(setOpts).val() == "1"){
			$(fnRemoveBtn).attr("disabled", true).css("opacity", "0.3").css("-webkit-opacity", "0.3");
		}else{
			$(fnRemoveBtn).removeAttr("disabled").css("opacity", "1.0").css("-webkit-opacity", "1.0");
		}
	}
	
	$(":input[name='fnAddBtn']").each(function(idx, item){
		if($(setOpts).val() == "1"){
			$(item).attr("disabled", true).css("opacity", "0.3").css("-webkit-opacity", "0.3");
		}else{
			$(item).removeAttr("disabled").css("opacity", "1.0").css("-webkit-opacity", "1.0");
		}
	});
}
